home *** CD-ROM | disk | FTP | other *** search
/ Computer Shopper 242 / Issue 242 - April 2008 - DPCS0408DVD.ISO / Software Money Savers / VirtualDub / Source / VirtualDub-1.7.7-src.7z / src / helpfile / source / capture.lina < prev    next >
Encoding:
Text File  |  2007-02-05  |  59.7 KB  |  1,230 lines

  1. <lina:create file="capture.html" title="Video capture">
  2.     <p>
  3.         <em>Video capture</em> is the process of taking video from an external hardware source, such as analog video, and digitizing
  4.         it into a form that can be used on a computer. VirtualDub allows use of several classes of video capture hardware to do
  5.         this conversion, depositing the result as an <tt>.avi</tt> file on disk.
  6.     </p>
  7.     <h2>What you need to use capture mode</h2>
  8.     <p>
  9.         In order to use VirtualDub's video capture mode, you need:
  10.     </p>
  11.     <ul>
  12.         <li>A video capture device.</li>
  13.         <li>An external video source.</li>
  14.     </ul>
  15.     <p>
  16.         Video capture mode cannot be used to capture streaming video over a network or graphics on your own local machine (unless
  17.         you loop-back TV out into a video capture device).
  18.     </p>
  19. </lina:create>
  20.  
  21. <lina:create file="c-spillmode.html" title="Capture: Multi-segment mode">
  22.     <p>
  23.         <em>Spill mode</em> allows a video capture operation to be split across multiple files. This allows file
  24.         size limits to be bypassed and also permits use of multiple partitions.
  25.     </p>
  26.  
  27.     <h2>Selecting spill drives for capture</h2>
  28.     <p>
  29.         Select the <em>Capture > Capture drives</em> to set up the drive array for spill mode:
  30.     </p>
  31.     <blockquote>
  32.         <lina:image src="pics/c-spilldrives.png"/>
  33.     </blockquote>
  34.  
  35.     <dl>
  36.         <dt>Add/remove spill drive</dt>
  37.         <dd>
  38.             <p>
  39.                 Add a new spill drive, or remove the currently selected drive. When adding a new drive, click on the threshold
  40.                 or path portion of the entry to edit it.
  41.             </p>
  42.             <p>
  43.                 Capture drives can be on the same physical hard drive, but should not share the same logical hard drive (volume).
  44.                 It is a bad idea to add two entries for the same volume, as the two will have the same free space totals.
  45.                 For instance, <tt>C:\</tt> and <tt>C:\Capture</tt> should not both be added to the list unless a different
  46.                 partition is mounted at <tt>C:\Capture</tt>.
  47.             </p>
  48.         </dd>
  49.  
  50.         <dt>Threshold</dt>
  51.         <dd>
  52.             <p>
  53.                 The threshold controls the minimum amount of disk space, in megabytes, that must be free on the drive for VirtualDub to use
  54.                 it. For instance, if the threshold is set to 50MB and the minimum capture file size is 100MB, VirtualDub will not start a
  55.                 new file on that drive unless there is at least 50MB + 100MB = 150MB free space, and will stop writing to a file being
  56.                 generated there once free space drops below 50MB.
  57.             </p>
  58.         </dd>
  59.  
  60.         <dt>Try not to create AVI files smaller than... MB</dt>
  61.         <dd>
  62.             Sets the minimum file size that should be creatable above a spill drive's threshold before a file should be started on it.
  63.             This prevents VirtualDub from switching to a spill drive that only has 14MB above its threshold; not only is this annoying,
  64.             but it can result in back-to-back file switches, which can cause problems.
  65.         </dd>
  66.  
  67.         <dt>Try not to create AVI files larger than... MB</dt>
  68.         <dd>
  69.             Sets the maximum file size that VirtualDub should aim for before switching to a new file. The maximum value for this file is
  70.             2048MB, because VirtualDub disables its large AVI file support when writing spill files. It should be set some amount below
  71.             that to provide a buffer to account for latency during the video capture, which is why the default is 1900MB.
  72.         </dd>
  73.     </dl>
  74.  
  75.     <h2>Using multi-segment capture</h2>
  76.     <p>
  77.         Enable <em>Capture > Enable multisegment capture</em> to allow use of spill drives. The capture filename will then be used
  78.         to generate the prefix for sequentially numbered files, so that a base name of <tt>capture.avi</tt> produces <tt>capture.00.avi</tt>,
  79.         <tt>capture.01.avi</tt>, <tt>capture.02.avi</tt>, etc. Then begin capture as usual to start capturing to a series of sequential
  80.         files.
  81.     </p>
  82.     <lina:note>
  83.         Make sure the capture path is on one of the spill drives, or VirtualDub will switch to one of the drives shortly after the start
  84.         of the capture, leaving a ~50MB runt as the first file.
  85.     </lina:note>
  86.  
  87.     <h2>Caveats with multi-segment capture</h2>
  88.     <p>
  89.         As when editing, audio and video compression can impact the ability of VirtualDub to produce clean cuts between segments.
  90.         In the interest of speed, VirtualDub is a bit sloppy when writing capture segments. Issues include:
  91.     </p>
  92.     <ul>
  93.         <li>
  94.             If video compression with delta frames is being used, a segment can start on a delta frame. This is OK if VirtualDub is loading
  95.             the capture segment, but can be a problem if you are trying to load individual segments into a program that doesn't expect
  96.             raw stream slices, because the delta frame is undecodable without the previous segment.
  97.         </li>
  98.         <li>
  99.             Audio compression can cause a segment's audio to be slightly desynchronized from the video, subject to the block size of the
  100.             audio compression. This isn't a problem when joining all of the segments together, though.
  101.         </li>
  102.         <li>
  103.             There may be one additional segment that has a video stream with no video frames in it; this can occur when writing out the
  104.             final audio during a capture, more audio has been captured than video, and the audio spills over into a new segment but the
  105.             video doesn't.
  106.         </li>
  107.     </ul>
  108.     <p>
  109.         If you will attempt to load individual segments or load the files into a different program, it is recommended that you use
  110.         video compression that does not use delta frames, and disable audio compression.
  111.     </p>
  112.  
  113.     <h2>Reading multi-segment capture files</h2>
  114.     <p>
  115.         Each capture segment written by VirtualDub contains a record in it that indicates the location of the next segment. This makes
  116.         it possible for VirtualDub to follow the sequence of capture files without knowing the list of spill drives, even if the sequence
  117.         hops between drives. The algorithm for following the chain is as follows:
  118.     </p>
  119.     <ul>
  120.         <li>Try the same directory as the previous segment.</li>
  121.         <li>If that doesn't work, try the directory indicated by the segment hint in the AVI file.</li>
  122.         <li>If that still doesn't work, ask the user to locate the next segment.</li>
  123.     </ul>
  124.     <p>
  125.         It is thus not a good idea to mix segments from different captures, as VirtualDub may get confused if it sees a <tt>capture.06.avi</tt>
  126.         that is actually from a different sequence than <tt>capture.05.avi</tt> in the same location.
  127.     </p>
  128.     <p>
  129.         The format of the segment hint is a chunk with the FOURCC <tt>segm</tt> within the AVI header block. It consists of a single
  130.         byte which is <tt>00</tt> if no further segments are present, or <tt>01</tt> if more segments should be loaded, followed by
  131.         the filename of the next segment, null terminated. (Regrettably, this is 8-bit ANSI encoded, not 16-bit Unicode.) The full
  132.         filename is encoded, although only the path is used, and the filename should still follow the <i>basename</i>.<i>nn</i>.avi
  133.         convention.
  134.     </p>
  135.  
  136. </lina:create>
  137.  
  138. <lina:create file="c-pipeline.html" title="Capture: Pipeline">
  139.     <style>
  140.         table.pipeline {
  141.         }
  142.  
  143.         table.pipeline th {
  144.             background: #8ae;
  145.         }
  146.  
  147.         table.pipeline td {
  148.             background: #aea;
  149.             text-align: center;
  150.             vertical-align: middle;
  151.             padding: 0px 16px;
  152.         }
  153.     </style>
  154.  
  155.     <p>
  156.         Like during a render-to-disk, captured audio and video flows through a series of processing
  157.         stages before written to disk. This is what VirtualDub's capture pipeline looks like:
  158.     </p>
  159.  
  160.     <table class="pipeline">
  161.         <tr>
  162.             <th>Video path</th>
  163.             <th>Audio path</th>
  164.         </tr>
  165.         <tr>
  166.             <td>Video callback</td>
  167.             <td>Audio callback</td>
  168.         </tr>
  169.         <tr>
  170.             <td colspan="2" align="center">Statistics layer</td>
  171.         </tr>
  172.         <tr>
  173.             <td colspan="2" align="center">Resynchronizer</td>
  174.         </tr>
  175.         <tr>
  176.             <td>Capture filters</td>
  177.             <td rowspan="4">Audio compression</td>
  178.         </tr>
  179.         <tr>
  180.             <td>Video filters</td>
  181.         </tr>
  182.         <tr>
  183.             <td>Video display</td>
  184.         </tr>
  185.         <tr>
  186.             <td>Video compression</td>
  187.         </tr>
  188.         <tr>
  189.             <td colspan="2" align="center">Spill synchronizer</td>
  190.         </tr>
  191.         <tr>
  192.             <td colspan="2">Disk write</td>
  193.         </tr>
  194.     </table>
  195.     <dl>
  196.         <dt>Video/audio callback</dt>
  197.         <dd>
  198.             This is the entry point at which the capture API (VFW/DirectShow) notifies VirtualDub that
  199.             audio or video data has been captured.
  200.         </dd>
  201.  
  202.         <dt>Statistics layer</dt>
  203.         <dd>
  204.             Most of the statistics in the information sidebar are collected at this point. Additional
  205.             information not available from the capture layer, such as the timestamp of audio capture,
  206.             is added at this point.
  207.         </dd>
  208.  
  209.         <dt>Resynchronizer</dt>
  210.         <dd>
  211.             Audio/video resynchronization occurs at this point, both adjusting the video timing and
  212.             resampling audio. The exact operations performed here are controlled by the settings in
  213.             the <a href="c-timing.html">Timing dialog</a>.
  214.         </dd>
  215.  
  216.         <dt>Capture video filters</dt>
  217.         <dd>
  218.             Capture-specific video filters such as field swap, 2:1 vertical reduction, and level
  219.             compression occur here. Unlike the regular video filters, capture filters run directly
  220.             in the capture format, either YCbCr or RGB — if the capture filter can't run in
  221.             the current format, an error is displayed instead of a conversion being performed.
  222.         </dd>
  223.  
  224.         <dt>Video filters</dt>
  225.         <dd>
  226.             Any standard video filters execute now; the video is converted to 32-bit RGB before
  227.             entering the video filter chain. If the video filter chain is not enabled, the conversion
  228.             to 32-bit RGB is skipped.
  229.         </dd>
  230.  
  231.         <dt>Video display</dt>
  232.         <dd>
  233.             If the display mode is set to Preview, the video stream is tapped off at this point
  234.             for display purposes.
  235.         </dd>
  236.  
  237.         <dt>Video/audio compression</dt>
  238.         <dd>
  239.             The selected video and audio compression codecs now apply data compression.
  240.         </dd>
  241.  
  242.         <dt>Spill synchronizer</dt>
  243.         <dd>
  244.             If spill mode is enabled for multi-file capture, the spill synchronization code now
  245.             determines which file the audio and video streams write into, to ensure that each
  246.             file is cleanly cut with the same audio and video durations.
  247.         </dd>
  248.  
  249.         <dt>Video/audio write, disk write</dt>
  250.         <dd>
  251.             Audio and video data is buffered and eventually written to disk.
  252.         </dd>
  253.     </dl>
  254. </lina:create>
  255.  
  256. <lina:create file="c-filtering.html" title="Capture: Filtering">
  257.     <p>
  258.         VirtualDub allows the incoming video to be filtered before it is compressed and written to disk.
  259.         This requires a lot of CPU power to do reliably, but correcting, shrinking, and cleaning up the
  260.         video before it is compressed can result in higher quality captures without requiring an additional
  261.         post-process pass.
  262.     </p>
  263.     <p>
  264.         All capture filters are accessible through the <em>Video</em> menu. If the video display mode is
  265.         set to Preview <em>and</em> preview acceleration is enabled, the post-filtered result can be
  266.         seen on the preview display.
  267.     </p>
  268.  
  269.     <h2>Capture format compatibility</h2>
  270.     <p>
  271.         Unlike the normal filter system, the capture filter system does not attempt to automatically convert
  272.         video filters to accommodate filter stages. Care must be taken to choose a video format which is compatible
  273.         with all of the filters you wish to use:
  274.     </p>
  275.  
  276.     <style>
  277.         table.formats {
  278.         }
  279.  
  280.         table.formats th {
  281.             background: #8ae;
  282.             font-size: 12px;
  283.         }
  284.  
  285.         table.formats td {
  286.             background: #aea;
  287.             text-align: center;
  288.             vertical-align: middle;
  289.             padding: 0px 16px;
  290.         }
  291.     </style>
  292.     <blockquote>
  293.         <table class="formats">
  294.             <tr>
  295.                 <th>Format</th>
  296.                 <th>Crop</th>
  297.                 <th>Swap fields</th>
  298.                 <th>Noise reduction</th>
  299.                 <th>Vertical reduction</th>
  300.                 <th>Extend luma</th>
  301.                 <th>Filter chain</th>
  302.             </tr>
  303.             <tr><td>15-bit RGB</td>    <td>Yes</td><td>Yes</td><td>   </td><td>   </td><td>   </td><td>Yes</td></tr>
  304.             <tr><td>16-bit RGB</td>    <td>Yes</td><td>Yes</td><td>   </td><td>   </td><td>   </td><td>Yes</td></tr>
  305.             <tr><td>24-bit RGB</td>    <td>Yes</td><td>Yes</td><td>Yes</td><td>Yes</td><td>   </td><td>Yes</td></tr>
  306.             <tr><td>32-bit RGB</td>    <td>Yes</td><td>Yes</td><td>Yes</td><td>Yes</td><td>   </td><td>Yes</td></tr>
  307.             <tr><td>UYVY</td>        <td>Yes</td><td>Yes</td><td>Yes</td><td>Yes</td><td>Yes</td><td>Yes</td></tr>
  308.             <tr><td>YUY2</td>        <td>Yes</td><td>Yes</td><td>Yes</td><td>Yes</td><td>Yes</td><td>Yes</td></tr>
  309.             <tr><td>YV16</td>        <td>Yes</td><td>Yes</td><td>   </td><td>Yes</td><td>Yes</td><td>Yes</td></tr>
  310.             <tr><td>YV12</td>        <td>Yes</td><td>   </td><td>   </td><td>Yes</td><td>Yes</td><td>Yes</td></tr>
  311.             <tr><td>I420</td>        <td>Yes</td><td>   </td><td>   </td><td>Yes</td><td>Yes</td><td>Yes</td></tr>
  312.             <tr><td>IYUV</td>        <td>Yes</td><td>   </td><td>   </td><td>Yes</td><td>Yes</td><td>Yes</td></tr>
  313.             <tr><td>YVU9</td>        <td>Yes</td><td>   </td><td>   </td><td>Yes</td><td>Yes</td><td>Yes</td></tr>
  314.             <tr><td>Y41P</td>        <td>Yes</td><td>Yes</td><td>   </td><td>Yes</td><td>   </td><td>Yes</td></tr>
  315.             <tr><td>Y8</td>            <td>Yes</td><td>Yes</td><td>   </td><td>Yes</td><td>   </td><td>Yes</td></tr>
  316.         </table>
  317.     </blockquote>
  318.  
  319.     <p>
  320.         If a capture video filter is not compatible with the input format, it is automatically disabled. Note that
  321.         compressed video formats are not supported at all — if the capture device outputs compressed data,
  322.         no video filtering is possible at all.
  323.     </p>
  324.  
  325.     <h2>Detailed description of capture filters</h2>
  326.  
  327.     <dl>
  328.         <dt>Cropping</dt>
  329.         <dd>
  330.             <p>
  331.                 Discards borders of the video, resulting in a smaller output video. If the video is letterboxed, applying
  332.                 cropping can improve performance as well as reduce output file sizes. It is nearly free if vertical reduction
  333.                 or RGB filtering is enabled.
  334.             </p>
  335.             <p>
  336.                 The video format imposes restrictions on the alignment of the cropping boundaries. RGB formats can
  337.                 be cropped to pixel accuracy; YUY2/UYVY can only be cropped to the nearest even pixel boundary horizontally,
  338.                 and YV12/I420 to the nearest 2x2 pixel block.
  339.             </p>
  340.         </dd>
  341.  
  342.         <dt>Swap fields</dt>
  343.         <dd>
  344.             <p>
  345.                 Swaps even and odd scanlines within the image to correct for a video capture device that is
  346.                 assembling fields in reverse order. This affliction looks like a "raspy" effect in the image.
  347.                 Field swapping is a relatively fast operation.
  348.             </p>
  349.         </dd>
  350.  
  351.         <dt>Noise reduction</dt>
  352.         <dd>
  353.             <p>
  354.                 Applies a quick, first-order recursive filter to reduce the amount of noise within the image.
  355.                 This is a primitive noise reduction filter, but can be effective, particularly for light noise
  356.                 or videos with low motion. The amount of noise reduction is adjustable; higher thresholds produce
  357.                 more noise reduction at the cost of higher motion artifacts.
  358.             </p>
  359.         </dd>
  360.  
  361.         <dt>Vertical reduction</dt>
  362.         <dd>
  363.             <p>
  364.                 Reduces the vertical height of the captured video by one-half using either bilinear or bicubic resampling.
  365.                 This is useful if the additional vertical resolution is not required, but better image quality is desired
  366.                 than would be obtained by using the capture device's scaler, which often handles such a request by simply
  367.                 throwing away one of the fields (every other scanline). This option consumes a decent amount of CPU power
  368.                 and should be used with care; however, it can also significantly speed up subsequent video compression
  369.                 due to the smaller output image.
  370.             </p>
  371.             <p>
  372.                 Note that vertical reduction causes fields to be blended together, which can cause ghosting artifacts due
  373.                 to motion within the image.
  374.             </p>
  375.         </dd>
  376.  
  377.         <dt>Extend luma black point</dt>
  378.         <dd>
  379.             <p>
  380.                 Compresses the luminance range of an image so that "superblack" levels from 0-15 are scaled to within the
  381.                 valid luminance range of 16-235, out of 0-255. These levels are ordinarily shown as red at the lower end of
  382.                 the histogram scale and would be clamped to black without this option. This is only useful if the capture
  383.                 format uses the YCbCr color space, as these values are already lost if RGB is used.
  384.             </p>
  385.             <p>
  386.                 The transform is a straightforward linear mapping of the luminance values from [0, 235] to [16, 235], if
  387.                 <em>extend luma white point</em> is disabled, or [0, 255] to [16, 235] if that option is also enabled.
  388.             </p>
  389.         </dd>
  390.  
  391.         <dt>Extend luma white point</dt>
  392.         <dd>
  393.             <p>
  394.                 Compresses the luminance range of an image so that "superwhite" levels from 0-15 are scaled to within the
  395.                 valid luminance range of 16-235, out of 0-255. These levels are ordinarily shown as red at the upper end of
  396.                 the histogram scale and would be clamped to white without this option. This is only useful if the capture
  397.                 format uses the YCbCr color space, as these values are already lost if RGB is used. However, it can allow
  398.                 for recovery of very bright colors that would ordinarily white-out or become garish yellows due to signal
  399.                 overamplification.
  400.             </p>
  401.             <p>
  402.                 The transform is a straightforward linear mapping of the luminance values from [16, 255] to [16, 235], if
  403.                 <em>extend luma black point</em> is disabled, or [0, 255] to [16, 235] if that option is also enabled.
  404.             </p>
  405.         </dd>
  406.  
  407.         <dt>Filters / Enable RGB Filtering</dt>
  408.         <dd>
  409.             <p>
  410.                 Pushes video through the normal VirtualDub video processing filter chain. Nearly all video filters
  411.                 can be used here; however, the <em>temporal smoother</em> should be avoided as it has a frame lag, which
  412.                 is not supported in capture mode.
  413.             </p>
  414.             <p>
  415.                 Using normal video filters will force the video to be converted to 32-bit RGB, and consumes a significant
  416.                 amount of CPU power.
  417.             </p>
  418.         </dd>
  419.     </dl>
  420. </lina:create>
  421.  
  422. <lina:create file="c-driverselect.html" title="Capture: Driver types and driver selection">
  423.     <p>
  424.         In order to use a video capture hardware device, you need a <em>capture driver</em> to interface VirtualDub to the hardware.
  425.         This software should come with your hardware device and should be installed in Windows as part of the software package that
  426.         came with it. If you are missing the driver software, check the vendor's website or contact the vector for a replacement
  427.         as otherwise you will not be able to use the hardware with VirtualDub.
  428.     </p>
  429.     <p>
  430.         All capture devices detected by VirtualDub are displayed at the end of the <em>Devices</em> menu. Selecting a driver entry
  431.         causes the current capture driver to be stopped and the new capture driver to be started.
  432.     </p>
  433.     <p>
  434.         There are two types of video capture drivers in Windows, which behave differently in their capabilities. It is important
  435.         to know the type of video capture driver you have installed as the distinction affects which features of VirtualDub's
  436.         capture mode can be used. VirtualDub can use drivers that are written to either driver model.
  437.     </p>
  438.  
  439.     <h2>Video for Windows (VFW) capture drivers</h2>
  440.     <p>
  441.         Video for Windows is the original video API for Windows, and is the older driver type of the two. These drivers can sometimes
  442.         be found for versions of Windows as old as Windows 95, and it is even possible to use a capture driver written for
  443.         Windows 3.1 (which is very much not recommended). These drivers have several limitations:
  444.     </p>
  445.     <ul>
  446.         <li>
  447.             Audio capture is always done through the sound card, or a driver that makes the capture device's audio path look
  448.             like a sound card.
  449.         </li>
  450.         <li>
  451.             VFW-model drivers expose few settings programmatically; settings such as audio control, channel selection, video
  452.             standard, video image settings, etc. are only exposed through the driver's own dialogs. These are accessible through
  453.             the <em>Video display</em>, <em>Video format</em>, and <em>Video settings</em> commands in the Video menu. Unfortunately,
  454.             this means that VirtualDub cannot save or restore these settings, or control them directly.
  455.         </li>
  456.     </ul>
  457.     <p>
  458.         One advantage of VFW-model drivers is that they are often mature and well-debugged, and thus reliable. Another is that VFW
  459.         drivers are supported by both the VFW and DirectShow capture APIs in Windows, making them usable across a wide variety
  460.         of capture applications.
  461.     </p>
  462.     <p>
  463.         VFW drivers can be
  464.         found for all versions of Windows, from Windows 95 to Windows XP. However, starting with Windows 2000 more manufacturers
  465.         have started shipping WDM-model drivers instead. A few video capture devices have support for both.
  466.     </p>
  467.     <p>
  468.         A VFW-model driver can be identified by the <tt>(VFW)</tt> tag after the entry in the <em>Device</em> menu.
  469.     </p>
  470.  
  471.     <h2>Windows Driver Model (WDM) capture drivers (DirectShow-based)</h2>
  472.     <p>
  473.         The newer type of video capture driver in Windows uses the Windows Driver Model (WDM), which was introduced in Windows
  474.         98 and 2000. The Microsoft DirectShow API is the primary API to use these drivers. Because the DirectShow API supports
  475.         a larger variety of commands and settings than VFW, the functionality set of a WDM driver is significantly improved:
  476.     </p>
  477.     <ul>
  478.         <li>WDM devices can expose integrated audio capture directly.</li>
  479.         <li>Nearly all settings exposed in UI, such as video saturation, are also exposed programmatically for unattended control.</li>
  480.         <li>If available, VirtualDub can directly control the TV tuner channel, as well as audio/video source selection.</li> 
  481.     </ul>
  482.     <p>
  483.         DirectShow is a much more complex API than VFW, however, and WDM-model drivers historically have been a lot less stable
  484.         than their VFW counterparts. It is not unusual to see problems such as capture applications that cannot be closed, because
  485.         their program execution is stuck in the capture driver. WDM is the proscribed driver model going forward, however, so the
  486.         situation should improve over time.
  487.     </p>
  488.     <p>
  489.         A WDM driver that requires use of DirectShow will have a <tt>(DirectShow)</tt> tag besides its entry in the <em>Device</em> menu.
  490.     </p>
  491.     <p>
  492.         The <em>Video display</em>, <em>Video format</em>, and <em>Video settings</em> dialogs will not normally be available
  493.         when DirectShow is in use. The settings in those dialogs are usually available on the driver's <em>Capture pin</em> and
  494.         <em>Capture filter</em> dialogs instead. The exception is if a Video for Windows (VFW) driver is being used through DirectShow;
  495.         these drivers are indicated by <tt>(VFW > Directshow)</tt> next to their name in the <em>Device</em> menu. Using
  496.         a driver in this manner piles the limitations of DirectShow on top of the limitations of VFW, so it is usually better
  497.         to use those drivers directly with VFW instead.
  498.     </p>
  499.  
  500.     <h2>The Microsoft WDM Image Capture (Win32) driver</h2>
  501.     <p>
  502.         If you have a Windows Driver Model (WDM) driver installed, you may also have an entry in the device list called
  503.         <tt>Microsoft WDM Image Capture (Win32) (VFW)</tt>. This entry comes from a Microsoft driver called <tt>VFWWDM32</tt> and
  504.         is a wrapper that allows WDM-model drivers to be used through the older Video for Windows (VFW) API. The WDM driver
  505.         that is adapted can be selected through the <em>Video Source</em> driver dialog.
  506.     </p>
  507.     <p>
  508.         There are unfortunately some quirks in the way this adapter works, and some video capture devices will work erratically
  509.         or not at all through this wrapper. Device settings not accessible through VFW will also still not be available when using
  510.         it. If possible, use the capture device directly in DirectShow mode rather than using the <tt>VFWWDM32</tt> driver.
  511.     </p>
  512.  
  513.     <h2>Custom drivers</h2>
  514.     <p>
  515.         A few manufacturers had difficulty migrating their capture drivers from the relatively lenient Windows
  516.         95/98/ME versions to the newer, stricter versions of Windows based on the NT kernel. Instead of shipping a proper VFW
  517.         or WDM driver — both of which are possible on NT/2000/XP — these manufacturers shipped a custom driver along
  518.         with a custom, hardware-specific capture application. These capture devices are unfortunately not usable with VirtualDub
  519.         because they use a proprietary programming interface (API).
  520.     </p>
  521.  
  522.     <h2>The video emulation driver</h2>
  523.     <p>
  524.         The <em>Video emulation</em> capture driver is not a real capture driver installed in Windows, but rather an internal
  525.         video capture minidriver in VirtualDub used for testing. It accepts a video file, selected using the <tt>Video source</tt>
  526.         menu command, and plays that video, pretending to be a live video source pushing audio and video data from that file.
  527.         Although primarily useful for VirtualDub program development, it is also sometimes useful for diagnosing compatibility
  528.         problems and determining if problems lie in VirtualDub or in a video capture driver.
  529.     </p>
  530.     <p>
  531.         Note that additional load is placed on the hard disk and on the CPU by the video decoding, so this driver isn't necessarily
  532.         useful for performance testing.
  533.     </p>
  534. </lina:create>
  535.  
  536. <lina:create file="c-hardwaresetup.html" title="Capture: Hardware setup">
  537.     <p>
  538.         Here are some of the connectors you should have on your system:
  539.     </p>
  540.     <ul>
  541.         <li>
  542.             <em>Capture card coaxial input</em>: A round, threaded connector with a small hole in the middle that accepts modulated signals with audio (multiple channels).
  543.         </li>
  544.         <li>
  545.             <em>Capture card composite input</em>: A smooth, non-threaded (RCA) connector with a large hole in the middle. This connector accepts a single video input
  546.             without audio. The composite video cable, or the composite video portion of an octopus cable, usually has a yellow connector.
  547.         </li>
  548.         <li>
  549.             <em>Capture card S-Video input</em>: A rounded socket with four pin holes and a small rectangular slot (DIN-4). This connector accepts a single video input
  550.             without audio, but with brightness and color information separated. The result is higher video quality than composite input. S-Video cables usually have a black
  551.             connector.
  552.         </li>
  553.         <li>
  554.             <em>Capture card line input</em>: A mini-mono or mini-stereo socket about 1/8" in size, this is the audio input for the composite video and S-Video inputs.
  555.         </li>
  556.         <li>
  557.             <em>Capture card line output</em>: Also a mini-phone socket about 1/8" in size, this is the audio output from the capture card.
  558.         </li>
  559.         <li>
  560.             <em>Sound card line input</em>: A third mini-phone socket, this is the input to the sound card for recording. On sound cards with color-coded inputs, this should
  561.             be blue in color.
  562.         </li>
  563.     </ul>
  564.     <p>
  565.         If you have an all-in-one style capture device that does both video and audio, especially one over USB, then hooking it up
  566.         is a no-brainer: just connect everything to the capture device. You don't have a choice anyway. If you have a "TV tuner" style
  567.         device, though, then some of the capture work is also being done by the sound card, and you have to hook up a couple of cables
  568.         to get everything working.
  569.     </p>
  570.  
  571.     <h2>Capturing from cable (coaxial input)</h2>
  572.     <p>
  573.         In this scenario, you have a TV tuner type capture card and want to capture from a TV channel.
  574.     </p>
  575.     <ul>
  576.         <li>Connect the round coaxial cable to the capture card.</li>
  577.         <li>Connect the line-out from the capture card to the sound card line-in.</li>
  578.     </ul>
  579.     <p>
  580.         The TV tuner card accepts the cable input, selects and decodes the desired channel, captures the video, and splits off
  581.         the audio for your sound card to capture.
  582.     </p>
  583.  
  584.     <h2>Capturing from audio/video outputs</h2>
  585.     <p>
  586.         In this scenario, you have a TV tuner type capture card and want to capture from another device that has separate audio
  587.         and video outputs, such as a VCR or video game console.
  588.     </p>
  589.     <ul>
  590.         <li>Connect the composite video or S-Video output to the same video input on the capture card.</li>
  591.         <li>Connect the audio output from the output device to the capture card line-in.</li>
  592.         <li>Connect the line-out from the capture card to the sound card line-in.</li>
  593.     </ul>
  594.     <p>
  595.         The problem you will often encounter here is that the output device will have a pair of round RCA connectors, one for
  596.         each of the left/right stereo channels (red and white), while the capture and sound cards will have 1/8" mini-stereo inputs. A cable with
  597.         a male 1/8" on one end with stereo RCA male connectors on the other end, along with a pair of RCA female-female adaptors,
  598.         will help you hook everything up here.
  599.     </p>
  600.     <p>
  601.         This assumes that you have a capture card that has integrated audio capture. If your capture card simply passes through
  602.         the audio, it's better just to connect the audio output directly to the sound card:
  603.     </p>
  604.     <ul>
  605.         <li>Connect the composite video or S-Video output to the same video input on the capture card.</li>
  606.         <li>Connect the audio output from the output device directly to the sound card line-in.</li>
  607.     </ul>
  608.     <p>
  609.         This shortens the audio path for better quality, and you won't have to worry about whether the capture card's audio
  610.         mixer is set to the right level or the correct input.
  611.     </p>
  612.  
  613. </lina:create>
  614.  
  615. <lina:create file="c-performance.html" title="Capture: Performance">
  616.     <p>
  617.         Capturing live video is a real-time operation and places high demands on your system. Here are some steps you
  618.         can take to improve video capture performance.
  619.     </p>
  620.     <h2>
  621.         Shut down background tasks and applications
  622.     </h2>
  623.     <p>
  624.         Interruptions by background programs can interfere with video
  625.         capture and cause dropped frames. Applications you should watch out for, and temporarily disable, include:
  626.     </p>
  627.     <ul>
  628.         <li>virus scanners</li>
  629.         <li>disk defragmenters</li>
  630.         <li>search indexers, especially the Microsoft Indexing Service (formerly Microsoft Office Fast Find Indexer)</li>
  631.         <li>task schedulers</li>
  632.         <li>on-screen tickers and status readers — particularly anything that flashes or scrolls on-screen</li>
  633.     </ul>
  634.     <p>
  635.         CPU usage is a problem here, but competition for the hard disk is usually a much worse problem: any attempts
  636.         to access the disk by another application will cause the disk to seek back and forth, which seriously cuts
  637.         available write bandwidth.
  638.     </p>
  639.     <p>
  640.         Absolutely avoid using the CD-ROM drive during video capture, as the access traffic during the spin-up of the
  641.         CD-ROM drive can cause the hard drive to go off-line for more than a second.
  642.     </p>
  643.     <p>
  644.         It is not recommended to use other applications during video capture. Even if the other applications are light
  645.         in disk and CPU usage, they may cause momentary hiccups that result in dropped frames or timing anomalies during
  646.         the capture. The less that is going on in the system, the more accurate VirtualDub's timing statistics are and
  647.         the better it can keep audio and video streams in synchronization.
  648.     </p>
  649.  
  650.     <lina:note>
  651.         When in capture mode, VirtualDub temporarily sets its process priority to High and disables both the screensaver
  652.         and power saving mode on the display device. It isn't necessary to change these manually.
  653.     </lina:note>
  654.  
  655.     <h2>
  656.         Keep the disk clean
  657.     </h2>
  658.  
  659.     <p>
  660.         Hard drives reach peak write performance when writing sequentially on disk — the more they have to seek
  661.         around to different regions, the lower the available bandwidth. When files are scattered throughout a disk, free
  662.         space is broken into a lot of small chunks, which is called <em>fragmentation</em>. This means that it is important to have large
  663.         areas of contiguous free space on a drive. Here are some tips to improve disk write performance:
  664.     </p>
  665.     <ul>
  666.         <li>
  667.             Run Disk Defragmenter and check that free space is not overly fragmented on the target drive. The fragmentation
  668.             of existing files doesn't matter, just the free space. It's OK if the free space is split into a few dozen
  669.             chunks, as a seek every minute isn't a problem. If it's really swiss-cheesed, though, consider defragmenting.
  670.         </li>
  671.         <li>
  672.             Have extra free space on the drive. VirtualDub allocates large blocks of space a time to give Windows a chance
  673.             to find clear areas on the drive; however, this becomes more difficult as the drive gets full and Windows scavenges
  674.             for the last free space on the disk. Fragmentation becomes much worse once you start filling the last 5-10% of a drive.
  675.         </li>
  676.         <li>
  677.             Use a different partition or disk than the one that holds Windows system files, as that partition typically
  678.             has a large number of small, volatile files and fragments very quickly.
  679.         </li>
  680.     </ul>
  681.  
  682.     <h2>
  683.         Use appropriate video compression and video formats
  684.     </h2>
  685.     <p>
  686.         Uncompressed video capture dumps a <em>lot</em> of data onto the disk — 720x480 in 16-bit YUY2 at 29.97 fps produces
  687.         approximately 20 megabytes per second. Modern computers have much more CPU power and thus you can reduce the strain on
  688.         the disk by storing the video in a more efficient format.
  689.     </p>
  690.     <p>
  691.         Start by choosing an efficient raw video format for your capture device to produce:
  692.     </p>
  693.     <ul>
  694.         <li><em>32-bit RGB</em>: Avoid this format, as it wastes 33% of the space used.</li>
  695.         <li><em>24-bit RGB</em>: This is the baseline, most compatible format. Start here.</li>
  696.         <li><em>15/16-bit RGB</em>: Avoid, as it introduces serious banding (quantization) artifacts.</li>
  697.         <li><em>16-bit YCbCr (UYVY or YUY2)</em>: Try this format. It is closer to the format produced internally by most hardware
  698.             video decoders and used internally by many video codecs, but it is 33% smaller than 24-bit RGB. Using this format will
  699.             often significantly improve performance.</li>
  700.     </ul>
  701.     <p>
  702.         Apply video compression on top of this to further reduce data bandwidth. Because the raw video capture will likely
  703.         need some post-editing to be useful, avoid formats that overly degrade video or are difficult to edit.
  704.     </p>
  705.     <ul>
  706.         <li>
  707.             The <em>Huffyuv</em> video codec by Ben Rudiak-Gould is an excellent capture codec to use, as it is lossless, typically
  708.             achieves around a 2:1 compression ratio, and can work directly with YCbCr video. It is very fast and should work in
  709.             real-time on a 500MHz or faster CPU.
  710.         </li>
  711.         <li>
  712.             <em>Motion-JPEG (MJPEG)</em> codecs are also an excellent choice. They are lossy and thus will reduce video quality
  713.             very slightly, but the compression ratio is significantly better than lossless codecs like Huffyuv, at least 4:1 with
  714.             little or no perceptible quality loss. The Motion JPEG format
  715.             is also field-savvy and will store interlaced video without screwing up the fields.
  716.         </li>
  717.         <li>
  718.             <em>Digital Video (DV)</em> is another format to consider. Like Motion JPEG, DV is also a slightly-lossy format that is
  719.             friendly to interlaced video. It does take a bit more CPU to compress and decompress, however. Also, unlike Motion JPEG,
  720.             DV is always constant in data rate — 3.6MB/sec — so it is easy to predict how much disk space is required for
  721.             a given amount of time.
  722.         </li>
  723.         <li>
  724.             <em>MPEG-4</em> and other high-compression video formats should be avoided, as they require significant
  725.             CPU power to compress and may not be able to keep up with the incoming video at adequate quality. Also, their extremely
  726.             long delta frame chains can make the resulting video difficult or impossible to edit.
  727.         </li>
  728.     </ul>
  729.     <p>
  730.         Note that if you have a capture device that has hardware video compression, your options here are likely very limited.
  731.         In that case, browse the capture driver's configuration dialogs, usually <em>Video > Video Source</em> or <em>Video > Capture Filter</em>,
  732.         and select a format with relatively light compression.
  733.     </p>
  734.  
  735.     <h2>
  736.         Disable audio compression
  737.     </h2>
  738.     Uncompressed audio requires much less bandwidth than uncompressed video and reasonable audio compression usually
  739.     requires a lot of CPU power. This is particularly true of modern audio compression formats such as MPEG audio layer III (MP3).
  740.     It is highly recommended that you <em>not</em> use audio compression during video capture, as it can consume a lot of CPU
  741.     and make video capturing less reliable.
  742.  
  743. </lina:create>
  744.  
  745. <lina:create file="c-infopanel.html" title="Capture: Information panel">
  746.     <blockquote>
  747.         <lina:image src="pics/c-infopanel.png"/>
  748.     </blockquote>
  749.     <p>
  750.         The information panel shows current disk, video, and audio status during a video capture. It is toggled through the <i>Option > Show information panel</i>
  751.         menu command. Not all entries are always shown; the subset that is displayed can be changed in Preferences.
  752.     </p>
  753.     <dl>
  754.         <dt>Frames captured</dt>
  755.         <dd>The total number of video frames captured.</dd>
  756.  
  757.         <dt>Total time</dt>
  758.         <dd>The amount of time the capture has been running, in days:hours:minutes:seconds.</dd>
  759.  
  760.         <dt>Time left</dt>
  761.         <dd>The estimated amount of time the capture can continue, based on available disk space, video frame rate, and
  762.             current compression ratios.</dd>
  763.  
  764.         <dt>Total file size</dt>
  765.         <dd>The total amount of data written to disk in the current capture session.</dd>
  766.  
  767.         <dt>Disk space free</dt>
  768.         <dd>How much disk space is left on the capture drive(s).</dd>
  769.  
  770.         <dt>CPU usage</dt>
  771.         <dd>Estimated CPU utilization during the video capture. This includes CPU usage by processes other than VirtualDub.
  772.             <lina:note>
  773.                 On a system with multiple logical CPUs (SMP, dual core, or hyperthreading), this value may rise above 100%,
  774.                 up to 100% times the number of CPUs. Video capture is mostly single-threaded, so approaching 100% in these
  775.                 situations may still indicate CPU overload.
  776.             </lina:note>
  777.         </dd>
  778.  
  779.         <dt>Spill status</dt>
  780.         <dd>
  781.             Current status of a multi-segment capture operation. Normally this will indicate which segment number
  782.             is currently being written; it will also indicate when the capture engine is in the process of spilling
  783.             over from one segment to the next. If the spill takes a long time or never completes, this can prevent
  784.             VirtualDub from switching files and may be indicative of a bad audio/video timing problem.
  785.         </dd>
  786.  
  787.         <dt>Video: Size</dt>
  788.         <dd>Total amount of video data written to disk.</dd>
  789.  
  790.         <dt>Video: Average rate</dt>
  791.         <dd>The overall rate at which video frames are arriving from the video capture device. The more this
  792.             diverges from nominal, the more likely sync and frame drop problems are to appear.</dd>
  793.  
  794.         <dt>Video: Data rate</dt>
  795.         <dd>The overall rate at which video data is being written to disk, in bytes/kilobytes/megabytes per second.
  796.             When video compression is in use, this statistic refers to compressed video data.
  797.         </dd>
  798.  
  799.         <dt>Video: Compression</dt>
  800.         <dd>The overall video compression ratio. Ratios greater than 1.0:1 indicate shrinkage in video size, whereas
  801.         less than 1.0:1 means enlargement (i.e. the "compression" is making the video bigger). Lossless algorithms
  802.         typically range from 1:1 to 3:1, whereas lossy compression can go much higher.
  803.         </dd>
  804.  
  805.         <dt>Video: Avg frame size</dt>
  806.         <dd>The average size, in bytes, of each video frame written to disk. When video compression is in use, this
  807.             statistic refers to compressed video frames.
  808.         </dd>
  809.  
  810.         <dt>Video: Frames dropped</dt>
  811.         <dd>This refers to the number of aberrations in the video stream which caused VirtualDub to drop a frame
  812.             in the video stream due to them being crowded too close together (too fast). Fewer is better, although
  813.             it is normal for frame drops to occur where there are disruptions in the video stream, such as the
  814.             start of a new recording on a tape.
  815.         </dd>
  816.  
  817.         <dt>Video: Frames inserted</dt>
  818.         <dd>This refers to the number of aberrations in the video stream which caused VirtualDub to insert a placeholder frame
  819.             into the video stream due to there being too few frames in that area (too slow). Fewer is better, although
  820.             it is normal for frame inserts to occur where there are disruptions in the video stream, such as the
  821.             start of a new recording on a tape.
  822.         </dd>
  823.  
  824.         <dt>Video: Resampling factor</dt>
  825.         <dd>When video timing correction is enabled, this indicates the factor by which "video time" is being accelerated
  826.             or slowed to match the expected output rate. This is only active if video timing correction is enabled. Unlike
  827.             audio resampling, video resampling only affects the assignment of frame numbers to incoming video frames; a
  828.             number other than 1x does not mean that video frames are being interpolated.
  829.         </dd>
  830.  
  831.         <dt>Audio: Size</dt>
  832.         <dd>Total amount of audio data written to disk.</dd>
  833.  
  834.         <dt>Audio: Average rate</dt>
  835.         <dd>
  836.             The average rate of the raw PCM data in the audio stream, relative to real time. This is the estimated actual
  837.             frequency of the incoming audio data. Small discrepancies in this value from expected are normal, as all clocks
  838.             have some error; however, large discrepancies in this value from the specified sampling rate may
  839.             indicate that the sound card has an audio clock with poor accuracy. Audio resampling can be used to stretch
  840.             the audio to compensate.
  841.         </dd>
  842.  
  843.         <dt>Audio: Relative rate</dt>
  844.         <dd>The average rate of the raw PCM data in the audio stream, relative to the <i>corrected</i> video stream.
  845.             This is thus the frequency of the audio if the video stream were perfectly timed, as it is assumed in
  846.             the on-disk video. Discrepancies between this value and the ideal frequency indicate overall sync error.
  847.             Small errors are expected due to measurement issues.
  848.         </dd>
  849.  
  850.         <dt>Audio: Data rate</dt>
  851.         <dd>Average bandwidth of audio data written to disk. When audio compression is active, this refers to
  852.             the compressed result.
  853.         </dd>
  854.  
  855.         <dt>Audio: Compression</dt>
  856.         <dd>The overall audio compression ratio; larger ratios mean smaller audio on disk.
  857.         </dd>
  858.  
  859.         <dt>Audio: Resample</dt>
  860.         <dd>Stretch factor applied to the audio stream, in semitones, in order to correct for speed errors relative to the video stream. This is only active if the timing setting
  861.             is "sync audio to video." A semitone is a step between minor notes on the musical scale, such as between the notes C and C#; a factor
  862.             of +/-12.000 is a full octave (half or double speed).
  863.             Positive values indicate the audio is being sped up (higher pitch), negative values indicate slowing (lower pitch), and zero means
  864.             no change to the audio speed.
  865.             <p>
  866.                 This value is an instantaneous measurement, not an average, so a varying adjustment means varying speeds in
  867.                 the written audio track.
  868.             </p>
  869.             <p>
  870.                 An adjustment within about 0.030 semitones is not usually noticeable, and slow, gradual drifts or oscillations in this value
  871.                 are normal. However, factors above +/-0.100 semitones and rapid changes in this value indicate warbling in
  872.                 the resampler's output, which may indicate timing problems.
  873.             </p>
  874.         </dd>
  875.  
  876.         <dt>Sync: Video timing adjust</dt>
  877.         <dd>Amount of adjustment, in milliseconds, applied to the video stream caused by detected differences from audio timing. This
  878.             is only pertinent if the timing setting is "sync video to audio." Positive values mean the video stream
  879.             is being sped up; negative values mean it is being slowed down. It is normal for this value to increment or decrement
  880.             occasionally over the course of a video capture session.
  881.         </dd>
  882.  
  883.         <dt>Sync: Relative latency</dt>
  884.         <dd>Estimated difference in arrival time, in milliseconds, between the audio and video streams. This is the difference between when VirtualDub sees
  885.             a video frame and the audio that corresponds to that frame, not necessarily a sync error in the output. Positive values
  886.             indicate the audio is arriving later, whereas negative values indicate it is arriving earlier. This value will typically be
  887.             in to 10-100ms range for "TV tuner" style devices and possibly as high as +/-300ms for devices with integrated compression.
  888.  
  889.             <p>
  890.             An abnormally large value here, particularly in the range of seconds or more, likely indicates a timing problem.
  891.             </p>
  892.         </dd>
  893.  
  894.         <dt>Sync: Current error</dt>
  895.         <dd>Estimated sync error between the audio and video streams; zero means that the audio and video streams are in sync. This is only
  896.             calculated if the sync mode is "sync audio to video." The audio resync controller continually adjusts the audio resampling rate
  897.             in an attempt to drive this error as close to zero as possible.
  898.         </dd>
  899.     </dl>
  900. </lina:create>
  901.  
  902. <lina:create file="c-timing.html" title="Capture: Timing dialog">
  903.     <blockquote>
  904.         <lina:image src="pics/c-timing.png"/>
  905.     </blockquote>
  906.     <p>
  907.         The <em>Capture timing</em> dialog allows control of the way VirtualDub matches video to audio during a capture operation. Video frames
  908.         can arrive from the video capture driver with non-regular timestamps due to timing accuracy issues and interference with background
  909.         tasks in the system; timing disturbances can also occur due to irregularities in the source video signal. During the video capture process,
  910.         the varying timestamps have to be matched to regular frame slots in the output video stream.
  911.     </p>
  912.     <dl>
  913.         <dt>Drop frames when captured frames are too close together</dt>
  914.         <dd>
  915.             <p>
  916.                 If enabled, VirtualDub discards frames that are spaced too close together for the output frame rate. For instance, three frames with
  917.                 timestamps 10ms apart (100 fps) cannot fit into a 29.97 fps stream. If this option is disabled, all captured frames are written
  918.                 to the output stream.
  919.             </p>
  920.             <p>
  921.                 Unless the audio resampler is enabled (see below), disabling this option can result in desynchronization of the audio and
  922.                 video streams.
  923.             </p>
  924.             <p>
  925.                 This option is enabled by default.
  926.             </p>
  927.         </dd>
  928.  
  929.         <dt>Insert null frames when captured frames are too far apart</dt>
  930.         <dd>
  931.             <p>
  932.                 If enabled, VirtualDub inserts dummy frames into the output video whenever captured frames are spaced too far apart for the output
  933.                 frame rate. For example, two captured frames spaced 66ms apart would have a dummy frame between them in a 29.97 fps stream.
  934.                 This dummy frame is identifiable in the video stream as a zero-byte frame and displays the same image as the previous non-dummy
  935.                 frame.
  936.             </p>
  937.             <p>
  938.                 Unless the audio resampler is enabled (see below), disabling this option can result in desynchronization of the audio and
  939.                 video streams.
  940.             </p>
  941.             <p>
  942.                 This option is enabled by default.
  943.             </p>
  944.         </dd>
  945.  
  946.         <dt>Null frame burst limit</dt>
  947.         <dd>
  948.             <p>
  949.                 Controls the maximum number of dummy frames in a row that VirtualDub will insert when captured frames are too far apart. This limits
  950.                 the amount of damage that occurs if timestamps in the video stream are wildly incorrect for a moment, such as a full day ahead.
  951.             </p>
  952.             <p>
  953.                 The default for this option is 10.
  954.             </p>
  955.         </dd>
  956.  
  957.         <dt>Resync mode: Do not resync between audio and video streams</dt>
  958.         <dd>
  959.             <p>
  960.                 In this mode, auto-resync is disabled: VirtualDub will not monitor the audio and video streams for timing discrepancies. This means that the quality
  961.                 of synchronization in the output video is dependant on the accuracy of the audio and video clocks; for example, if the sound device
  962.                 is recording slightly slower than the requested sampling rate, or the video capture device reports timestamps that are 0.1% too fast,
  963.                 the output video will be accordingly desynchronized.
  964.             </p>
  965.             <p>
  966.                 It is highly recommended that you enable auto-resync, as the audio and video clocks are never exactly identical unless both are
  967.                 being captured on the same device.
  968.             </p>
  969.         </dd>
  970.  
  971.         <dt>Resync mode: Sync video to audio by adjusting video timing</dt>
  972.         <dd>
  973.             <p>
  974.                 VirtualDub will speed up or slow down the video clock to match the audio clock. This will affect the number of frame drops and inserts
  975.                 in the video stream. If the audio clock is more inaccurate this will result in more drops/inserts; if the video clock is the worse one,
  976.                 this can sometimes <i>reduce</i> the number of drops and inserts.
  977.             </p>
  978.             <p>
  979.                 The amount of adjustment to the video clock is reported on the information side bar as the <em>VT adjust</em> field.
  980.             </p>
  981.         </dd>
  982.  
  983.         <dt>Resync mode: Sync audio to video by resampling the audio to a faster or slower rate</dt>
  984.         <dd>
  985.             <p>
  986.                 The audio will be stretched or compressed to match the video clock. The video stream is not affected, but the audio stream will have
  987.                 a slightly higher or lower pitch and speed. As the discrepancy in clocks is typically very small, this change is not normally noticeable.
  988.                 This mode is only usable if the audio device is capturing in an uncompressed (PCM) format; if a compressed format is in use and this
  989.                 mode is selected, the <em>sync video to audio</em> mode is used instead. Note that this only applies to the raw audio capture format;
  990.                 any audio codec can still be used.
  991.             </p>
  992.             <p>
  993.                 The amount of adjustment to the audio stream is noted in the information side bar as the <em>Resample</em> field.
  994.             </p>
  995.             <p>
  996.                 This mode is selected by default.
  997.             </p>
  998.             <p>
  999.                 The behavior of the audio resampler was significantly changed for 1.6.12.
  1000.             </p>
  1001.         </dd>
  1002.  
  1003.         <dt>Correct video timing rate errors</dt>
  1004.         <dd>
  1005.             <p>
  1006.                 If enabled, VirtualDub will attempt to adjust video timing to compensate for frames arriving slightly faster or slower than expected.
  1007.                 This can reduce the number of frame drops or inserts incurred during video capture, at the expense of making the video clip play slightly
  1008.                 faster or slower than real-time. This option is meant to be used with the <em>sync audio to video</em> resync mode, or when audio
  1009.                 is not being captured.
  1010.             </p>
  1011.             <p>
  1012.                 Video timing correction is automatically disabled if the resync mode is set to <em>sync video to audio</em> or if the resync mode is automatically
  1013.                 forced to that mode because <em>sync audio to video</em> can't be used due to compressed audio. It is also automatically disabled if
  1014.                 integrated A/V capture is detected and resync disabling is enabled (see below).
  1015.             </p>
  1016.             <p>
  1017.                 The behavior of the video timing corrector was significantly changed for 1.6.12.
  1018.             </p>
  1019.         </dd>
  1020.  
  1021.         <dt>Automatically disable resync when integrated audio/video capture is detected</dt>
  1022.         <dd>
  1023.             <p>
  1024.                 Capture devices that have both audio and video capture integrated usually use a shared clock to avoid sync errors between the streams.
  1025.                 When enabled, this option causes VirtualDub to automatically disable auto-resync when such a situation is detected.
  1026.             </p>
  1027.             <p>
  1028.                 Note that VirtualDub must see both audio and video devices on the same capture driver for this option to take effect. If you are using
  1029.                 a capture device which exposes its audio capture as a separate sound driver in Windows, VirtualDub will not see it as integrated.
  1030.             </p>
  1031.         </dd>
  1032.     </dl>
  1033. </lina:create>
  1034.  
  1035. <lina:create file="c-troubleshooting.html" title="Capture: Troubleshooting">
  1036.     <h2>Fireworks on entering capture mode or selecting a particular capture driver</h2>
  1037.     <p>
  1038.         VirtualDub tries to change settings in such a way that if the settings cause the driver to blow up, that
  1039.         the modified settings aren't saved — but occasionally the failure occurs later, in the form of a hang,
  1040.         crash, blue-screen, etc. The result is that
  1041.         you can't use the capture device any more, because as soon as you try entering capture mode VirtualDub
  1042.         auto-selects the last capture driver, and then restores the saved settings, and... well, you get the point.
  1043.     </p>
  1044.     <p>
  1045.         Fortunately, there is an escape hatch.
  1046.     </p>
  1047.     <p>
  1048.         Holding down a Shift key when entering capture mode will prevent VirtualDub from automatically
  1049.         selecting the last used capture driver. The easiest way to do this is to hold Shift when selecting
  1050.         <em>Capture AVI...</em> from the menu. Similarly, holding down Shift when selecting a capture driver
  1051.         will prevent any saved settings that were recorded for that driver from being restored. The errant settings
  1052.         can then be changed and re-saved to correct the problem.
  1053.     </p>
  1054.     <p>
  1055.         Note that this doesn't help for any settings that the capture driver itself saves and that VirtualDub doesn't
  1056.         know about. In that case, you can either attempt to reinstall the driver, or find the location in the Registry
  1057.         where it saves those settings, and try to change them.
  1058.     </p>
  1059.  
  1060.     <h2>System-wide hang, blue-screen, or instant reboot when using the "overlay" display mode</h2>
  1061.     <p>
  1062.         The "overlay" display mode on most capture devices causes the capture hardware to stream the video
  1063.         image directly into the display memory of the video card. Sometimes the capture device and video card
  1064.         don't cooperate well and the result is a lockup or blowup when overlay display mode is chosen. In
  1065.         most cases it is better to choose the Preview mode instead, as then VirtualDub can directly control
  1066.         the video display, but sometimes it is possible to switch a Video for Windows capture driver's method of overlay
  1067.         display to a more compatible mode.
  1068.     </p>
  1069.     <p>
  1070.         If this is occurring, check if the capture driver has an options screen. In Windows XP, navigate as follows:
  1071.     </p>
  1072.     <ul>
  1073.         <li>Start Menu, Settings, Control Panel, Sounds and Audio Devices</li>
  1074.         <li>Hardware tab, Legacy Video Capture Devices entry, Properties button</li>
  1075.         <li>Select the Properties tab, find the video capture driver, and then the Properties button.</li>
  1076.     </ul>
  1077.     <p>
  1078.         If the <em>Settings...</em> button is not disabled (grayed out), select it and browse through the driver's
  1079.         configuration dialog. Look for an option called "overlay mode" or "use DrawDib"; this will switch the driver
  1080.         to a slower, but more compatible method of display.
  1081.     </p>
  1082.  
  1083.     <h2>No color, rainbow coloring, or simply bad color</h2>
  1084.     <p>
  1085.         First, check that you are using the correct video input and that the capture device is configured
  1086.         to use the right one. On some devices the composite video input is simply the S-Video input with an adapter,
  1087.         so it is possible to set the video input to S-Video and still see a grayscale version of a composite video
  1088.         input.
  1089.     </p>
  1090.     <p>
  1091.         If you have both S-Video as well as an "external" or "camera" input, sometimes the external/camera input
  1092.         works better, inexplicably.
  1093.     </p>
  1094.     <p>
  1095.         Check the video standard in use. Attempting to capture an NTSC stream as PAL, PAL as SECAM, etc. will
  1096.         result in scrambled color. The video standard is normally controlled in <em>Video settings</em> for
  1097.         VFW drivers and <em>Capture filter</em> for WDM drivers, although the location may vary.
  1098.     </p>
  1099.  
  1100.     <h2>Video capture mysteriously stops</h2>
  1101.     <p>
  1102.         Check <em>Capture > Stop Conditions</em> and make sure no conditions have been inadvertently enabled.
  1103.     </p>
  1104.     <p>
  1105.         Interruptions in video sources, causing a loss of video signal, can occasionally cause this problem.
  1106.     </p>
  1107.     <p>
  1108.         On Windows NT-based platforms, locking the workstation with Ctrl+Alt+Del can cause a capture operation
  1109.         to stop. In general, it is best to avoid doing anything that might change desktops or the video
  1110.         display mode.
  1111.     </p>
  1112. </lina:create>
  1113.  
  1114. <lina:create title="Capture: Audio setup" file="c-audiosetup.html">
  1115.  
  1116.     <h2>Using Windows Volume Control to adjust recording levels</h2>
  1117.     <p>
  1118.         If your video capture device relies on the installed sound card to capture audio, you will need to
  1119.         adjust the recording levels on the sound card through the Volume Control tool in Windows. Double-click
  1120.         on the speaker icon in the notification area of the taskbar, or in Windows XP, launch it through
  1121.         <em>Start > Programs > Accessories > Entertainment > Volume Control</em>. You can also
  1122.         launch it from VirtualDub using the <em>Audio > Windows mixer...</em> menu command.
  1123.     </p>
  1124.     <p>
  1125.         Once Volume Control is open, select <em>Options > Properties</em> from the menu:
  1126.     </p>
  1127.  
  1128.     <blockquote>
  1129.         <lina:image src="pics/c-volume1.png"/>
  1130.     </blockquote>
  1131.  
  1132.     <p>
  1133.         The display on your system will differ slightly. Change the current control set from Playback to
  1134.         Recording, and make sure the appropriate input in checked in the list of controls to show, depending
  1135.         on which sound card input the capture device's audio output is plugged into (usually Line-In or
  1136.         Aux-In).
  1137.     </p>
  1138.  
  1139.     <blockquote>
  1140.         <lina:image src="pics/c-volume2.png"/>
  1141.     </blockquote>
  1142.  
  1143.     <p>
  1144.         Check that the correct inputs are selected for recording. If not, first check if it can be changed
  1145.         in VirtualDub using the <em>Audio > Audio input</em> submenu; the Volume Control should automatically
  1146.         update as VirtualDub changes inputs. Otherwise, the correct input should be manually selected.
  1147.         Now use the volume slider for the input to adjust the volume of the captured audio.
  1148.     </p>
  1149.  
  1150.     <h2>Checking levels with the volume meter</h2>
  1151.  
  1152.     <p>
  1153.         To check volume levels, display the volume meter in VirtualDub by selecting <em>Audio > Volume meter</em> from the menu, or press the <em>V</em>
  1154.         key.
  1155.     </p>
  1156.  
  1157.     <blockquote>
  1158.         <lina:image src="pics/c-vumeter.png"/>
  1159.     </blockquote>
  1160.  
  1161.     <p>
  1162.         The volume meter samples incoming audio from the recording input and displays the current and long-term peaks in blue
  1163.         and red, respectively.
  1164.         It measures sound power in decibels (dB); -6 dB is one-quarter maximum power, or one-half maximum amplitude.
  1165.         Lower peak values mean quieter audio.
  1166.     </p>
  1167.     <p>
  1168.         Audio should be adjusted so that it is reasonably loud without clipping (bars go all the way to the right end) —
  1169.         once this happens audio is distorted. It is usually safer for the audio to be on the quieter side, although if it is
  1170.         really quiet quality will be lost due to limited precision, even after amplification in post-processing.
  1171.     </p>
  1172. </lina:create>
  1173.  
  1174. <lina:create title="Capture: Screen capture" file="c-screencap.html">
  1175.     <p>
  1176.         The <em>screen capture</em> entry is a special capture "driver" within VirtualDub that allows the video screen
  1177.         to be used as the capture source instead of an external source.
  1178.     </p>
  1179.     <h2>Selecting the region to capture</h2>
  1180.     <p>
  1181.         Use the <em>Video > Set Custom Format...</em> menu option to choose the size of image to capture. Use 32-bit RGB as
  1182.         the format.
  1183.     </p>
  1184.     <p>
  1185.         By default, the image capture will occur at the top-left corner of the screen. The <em>Video > Source...</em> menu
  1186.         option exposes a couple of additional options to control the origin: it can be centered on the mouse cursor, to
  1187.         the current active top-level window, or both. When both options are active, VirtualDub will pan around the bounds
  1188.         of the active window according to the cursor position.
  1189.     </p>
  1190.     <h2>Starting the capture and performance implications</h2>
  1191.     <p>
  1192.         You will usually want to set hotkey shortcuts for starting and stopping the capture via <em>Capture > Preferences</em>,
  1193.         so as to avoid capturing the VirtualDub window itself.
  1194.     </p>
  1195.     <p>
  1196.         Capturing from the screen is very CPU-intensive and depends greatly on the speed of your CPU and video card.
  1197.         The size of the region captured greatly influences the CPU usage, so if you have problems, consider capturing
  1198.         a smaller size. More modern video cards and video drivers also tend to be more efficient at screen capture.
  1199.     </p>
  1200.     <h2>Enabling OpenGL acceleration</h2>
  1201.     <p>
  1202.         If you have a video card with 3D acceleration, you may be able to enable <em>OpenGL acceleration mode</em>, which
  1203.         enables additional features and also speeds up the screen capture process.
  1204.     </p>
  1205.     <p>
  1206.         The amount of acceleration possible depends on your video card's features.
  1207.     </p>
  1208.     <ul>
  1209.         <li><em>Basic OpenGL support</em> allows 32-bit capture with hardware accelerated resizing.</li>
  1210.         <li><em>Advanced blending support</em> permits hardware accelerated conversion to YCbCr formats, including
  1211.             <em>YUY2</em>, <em>UYVY</em>, and <em>YV12</em>. For cases where some color bleeding can be tolerated, this
  1212.             drops the raw data bandwidth requirements by 50-60%, and also speeds up real-time video compression if used.
  1213.             You need at least an NVIDIA GeForce video card (<tt>NV_register_combiners</tt> OpenGL extension) for hardware YCbCr conversion.
  1214.         </li>
  1215.         <li><em>Pixel (fragment) shader support</em> lowers the load on the video card. To take advantage of pixel shader
  1216.             support, you need at least an NVIDIA GeForce 3 (<tt>NV_register_combiners2</tt> extension) or an ATI
  1217.             RADEON 8500 (<tt>ATI_fragment_shader</tt> extension).
  1218.         </li>
  1219.         <li><em>Occlusion query support</em> allows duplicate frames to be removed on the video card with neglegible
  1220.             CPU load. Occlusion query support requires the <tt>NV_occlusion_query</tt> OpenGL extension (this is generally
  1221.             supported on 3D accelerators from both NVIDIA and ATI).
  1222.         </li>
  1223.     </ul>
  1224.     <lina:note>
  1225.         As of this writing, some video card drivers for Windows Vista are not compatible with the methods used here to capture
  1226.         the screen through OpenGL. If this is the case on your system, you will need to disable OpenGL acceleration so that
  1227.         the slower, more compatible GDI-based method is used.
  1228.     </lina:note>
  1229. </lina:create>
  1230.